perm filename F4PAG.F4[PAG,LCS]1 blob sn#597508 filedate 1981-07-03 generic text, type T, neo UTF8
00100	C***** F4PAG.F4 *********
00200	C**** SHFTQ, SORT2, NORH, MINMAX, PFIBX, PFIB, RLOOP, BLTEM
00300		SUBROUTINE SHFTQ(R)
00400		COMMON /JN/JN,JX /XRN/MM(1) /Q/Q(1)
00500		DO 1 K=1,JX
00600		L=MM(K)
00700	1	Q(L)=Q(L)+R
00800	C SHIFTS  ALL POSITION PARAMS.
00900		END
01000	
01100		SUBROUTINE SORT2(RPOS,M)
01200		DIMENSION RPOS(2,200)
01300		L=2
01400	3	J=-1
01500		RX=RPOS(1,L-1)
01600		DO 2 K=L,M
01700		IF(RPOS(1,K).GE.RX)GO TO 2
01800		RX=RPOS(1,K)
01900		J=K
02000	2	CONTINUE
02100		IF(J.LT.0)GO TO 4
02200		K=L-1
02300	C  EXCHANGE THE POSITIONS IN THE LIST
02400		RX=RPOS(1,K)
02500		RPOS(1,K)=RPOS(1,J)
02600		RPOS(1,J)=RX
02700		RX=RPOS(2,K)
02800		RPOS(2,K)=RPOS(2,J)
02900		RPOS(2,J)=RX
03000	4	L=L+1
03100		IF(L.LE.M)GO TO 3
03200		END
03300	
03400		FUNCTION NORH(KK,K)
03500		COMMON /XRN/R(500),NN(1)
03600	C FIND VALUE IN NN ARRAY IN DO LOOP.
03700		KK=NN(K)
03800		NORH=0
03900		IF(KK.LE.0)GO TO 1
04000	C NORH=-1 IF KK≤0, >18, NOT 1,2,4,17.
04100		IF(KK.LE.2.OR.KK.EQ.4)RETURN
04200		IF(KK.EQ.17.OR.KK.EQ.18)RETURN
04300	1	NORH=-1
04400		END
04500	
04600		SUBROUTINE FNDEND(R)
04700		COMMON /XRN/RN(500),NN(1) /ENDL/ENDLN
04800		K=1
04900	1	N=NN(K)
05000		IF(N.LE.0)GO TO 2
05100		IF(N.LE.3.OR.N.EQ.17.OR.N.EQ.18)GO TO 3
05200	2	K=K+1
05300		GO TO 1
05400	C ASSUMES IT WILL ALWAYS END PROPERLY
05500	3	R=ENDLN+2.0-RN(K)
05600		END
05700	
05800		SUBROUTINE MINMAX(JRN)
05900		COMMON /MNX/MIN,MAX,JT
06000		DIMENSION JRN(1)
06100	C GET FIRST VALUE OF CURRENT JRN ARRAY
06200		MIN=JRN(1)
06300		MAX=MIN
06400		DO 107 K=1,JT
06500		NN=JRN(K)
06600		IF(NN.LT.MIN)MIN=NN
06700	107	IF(NN.GT.MAX)MAX=NN
06800		END
06900	
07000		FUNCTION PFIBX(A)
07100		DATA FIB/0.618/, RFIB/-.382/
07200		PFIBX=14.
07300		IF(A.EQ.1.)RETURN
07400		Z=FIB
07500		X=ALOG(A)/0.6931472
07600		RH=ABS(X)
07700		IF(X.LE.0)Z=RFIB
07800		L=RH
07900		IF(L.EQ.0)GO TO 4
08000		DO 3 K=1,L
08100	3	PFIBX=PFIBX+PFIBX*Z
08200	4	RH=RH-L
08300		IF(RH.EQ.0)RETURN
08400		PFIBX=PFIBX+PFIBX*Z*RH
08500	C SEND BACK THE RESULT
08600		END
08700	
08800		FUNCTION PFIB(P)
08900	C   PSEUDO-FIBONACCI RHYTHM SPACER
09000		PFIB=(P+(.125-P)*(.8+.02*P))*50
09100		END
09200	
09300		SUBROUTINE RLOOP(A,B,K)
09400		DIMENSION A(1),B(1)
09500		DO 1 J=1,K
09600	1	A(J)=B(J)
09700		END
09800	
09900	C  BLTEM BLTS (WHEN IN FAIL) ARRAYS KPN AND Q INTO KWDS AND RN
10000		SUBROUTINE BLTEM
10100		COMMON /XRN/RN(1) /PTR/KWDS(1) /PX/KPN(1) /Q/Q(1)
10200		COMMON /POSI/STFF(8),JJ2,JPQ /RCLF/KK,CLEF,KW,ITEM
10300	CC	DO 1511 K=1,ITEM+1
10400	CC1511	KWDS(K)=KPN(K)
10500	CC	DO 1611 K=1,JPQ
10600	CC1611	RN(K)=Q(K)
10700		CALL RLOOP(KWDS,KPN,ITEM+1)
10800		CALL RLOOP(RN,Q,JPQ)
10900		END